Methods

Downloads data was exported from the prototype health and social care dashboard, which displays Google Analytics data from the NICE website.

Google Analytics samples a fraction of all web activity, therefore for greater accuracy, the time periods specified when extracting results were one-month rather than one-year periods. This was done by manually selecting each month in the date range widget and exporting the Downloads table in the ‘All webpages:links and downloads’ tab.

Downloads were pulled for June 2019 to April 2022.

The dashboard currently does not allow for filtering by the downloaded file’s URL. The exported Downloads table therefore covers all downloads from across the whole NICE website. QSSIT downloads were identified by filtering the data set for rows where the file URL includes ‘QS-service-improvement-template’ or ‘quality-standard-service-improvement-template’. This relies on the naming system being consistent over time, which is not necessarily the case.

data <- read_csv('./download_analytics/qssit_downloads_2019-06_2022-04.csv', col_types = "Dccd") %>% 
    mutate(qs = if_else(str_detect(page_path, "/qs\\d+/resources"), 
                        str_extract(page_path, "(?<=/)qs\\d+(?=/resources)") %>% str_to_upper(.), 
                        "general")) %>% 
    relocate(downloads,
             .after = last_col())

data %>% 
    select(!qs) %>% 
    datatable(.,
          filter = "top",
          colnames = c("Month" = "year_month",
                       "Download page" = "page_path",
                       "File URL" = "file",
                       "Downloads" = "downloads"),
          rownames = FALSE,
          extensions = 'Buttons', 
          options = list(
              dom = 'Bfrtip',
              buttons = c('csv')
  ))

How much is the QSSIT being downloaded per month from across the whole NICE website?

Looking at total monthly downloads across the whole NICE website:

total_downloads <- data %>% 
    group_by(year_month) %>% 
    summarise(downloads = sum(downloads))

total_downloads %>% 
    mutate(year_month = zoo::as.yearmon(year_month)) %>% 
    rename("Month" = year_month,
           "Downloads" = downloads) %>% 
    kbl() %>% 
    kable_styling(bootstrap_options = c("striped", "hover"))
Month Downloads
Jul 2019 1488
Aug 2019 1531
Sep 2019 1476
Oct 2019 1396
Nov 2019 1473
Dec 2019 887
Jan 2020 1389
Feb 2020 1522
Mar 2020 1089
Apr 2020 809
May 2020 916
Jun 2020 867
Jul 2020 957
Aug 2020 747
Sep 2020 950
Oct 2020 937
Nov 2020 825
Dec 2020 494
Jan 2021 762
Feb 2021 853
Mar 2021 962
Apr 2021 1078
May 2021 749
Jun 2021 935
Jul 2021 661
Aug 2021 594
Sep 2021 732
Oct 2021 1011
Nov 2021 1008
Dec 2021 801
Jan 2022 710
Feb 2022 620
Mar 2022 719
Apr 2022 756
fig <- total_downloads %>% 
    mutate(year_month = zoo::as.yearmon(year_month)) %>% 
    ggplot(aes(x = year_month, y = downloads)) +
    geom_line() +
    labs(x = "Month",
         y = "Downloads",
         title = "Total monthly downloads of QSSIT")
    

fig %>% ggplotly()

Which pages are the QSSIT being downloaded from?

The QSSIT sits on many pages, namely:

Where do people download the QSSIT from?

data <- data %>% 
    mutate(source_page = case_when(str_detect(page_path, "/qs\\d+/resources") ~ "Specific QSs (qs__/resources)",
                              TRUE ~ page_path) %>% 
               str_remove("\\?.*") %>% 
               str_remove("^((www.nice.org.uk/about/what-we-do/)|(www.nice.org.uk/))") %>% 
               fct_infreq())

fig_source_bar <- data %>% 
    group_by(year_month, source_page) %>% 
    summarise(downloads = sum(downloads), .groups = "drop") %>% 
    ggplot(aes(x = year_month, y = downloads, fill = source_page)) +
    geom_col(position = "stack") +
    labs(x = "Month",
         y = "Downloads",
         title = "Monthly downloads of QSSIT, by category of page downloaded from",
         fill = "Page source")

fig_source_bar %>% ggplotly(width = 850) 

From the bar chart above, it is clear that the contribution of different pages to overall monthly QSSIT downloads has changed over time.

Notably, downloads from the ‘How to use quality standards’ page have dropped markedly. Since November 2021, some of the usual traffic there may have been redirected to the new ‘About quality standards’ page.

Looking at time trends for each page category:

fig_source_line <- data %>% 
    group_by(year_month, source_page) %>% 
    summarise(downloads = sum(downloads), .groups = "drop") %>% 
    ggplot(aes(x = year_month, y = downloads, colour = source_page)) +
    geom_line() +
    labs(x = "Month",
         y = "Downloads",
         title = "Monthly downloads of QSSIT, by category of page downloaded from",
         colour = "Page source")

fig_source_line %>% ggplotly(width = 850) 

For all-time downloads by page category:


Aggregating downloads by page category over the whole time period (June 2019 - April 2022), people mostly download the QSSIT from the ‘Tools and resources’ tab of individual quality standards.

Note, this aggregation masks the time trends shown in the line graph above.

data %>% 
    group_by(source_page) %>% 
    summarise(downloads = sum(downloads)) %>%
    arrange(desc(downloads)) %>% 
    rename("Download page category" = source_page,
           Downloads = downloads) %>% 
    kbl() %>% 
    kable_styling(bootstrap_options = c("striped", "hover"))
Download page category Downloads
Specific QSs (qs__/resources) 16444
standards-and-indicators/how-to-use-quality-standards 9470
into-practice/measuring-the-uptake-of-nice-guidance 3319
into-practice/audit-and-service-improvement 3010
standards-and-indicators/quality-standards 461

Looking at individual pages

How do downloads from individual quality standards’ webpages compare with downloads from the general standards and indicators or into practice pages?

The graph below disaggregates the ‘Specific QSs’ group and displays downloads from each individual quality standard webpage separately.

(Interaction suggestions:

  • *Double-click on the ’Specific QSs (qs__/resources)’ in the legend to isolate the specific quality standards*
  • Drag a rectangle over the data points in the graph to zoom in
  • Hover over to see which QS the data point represents)
fig_qs <- data %>% 
    ggplot(aes(x = year_month, y = downloads, colour = source_page, label = qs)) +
    geom_point() +
    labs(x = "Month",
         y = "Downloads",
         title = "Monthly downloads of QSSIT, by individual pages",
         colour = "Page source")

fig_qs %>% ggplotly(width = 850)

Summing downloads over the whole of June 2019 to April 2022, the QSSIT is downloaded more from some quality standards than others.

Note, these overall downloads are confounded by when a quality standard was released.

data %>% 
    filter(qs != "general") %>% 
    select(-c(page_path, file, source_page)) %>%
    rename("Quality standard" = qs,
           Month = year_month,
           Downloads = downloads) %>% 
    reactable(
      .,
      filterable = TRUE,
      searchable = TRUE,
      groupBy = "Quality standard",
      showSortable = TRUE,
      columns = list(
          Downloads = colDef(aggregate = "sum",
                             sortable = TRUE)
      )
    )